﻿#pragma once

#include <string>
#include "Graphics.h"

namespace Base {
	class Shader
	{
	public:
		Shader();
		virtual ~Shader();

		void Init(
			const std::string& hlslRelativeFileName,
			const std::string& vsEntry,
			const std::string& fsEntry);

		ID3DBlob* GetVertexShaderBuffer()const { return m_vsBuffer.Get(); }
		ID3D11VertexShader* GetVertexShader()const { return m_vertexShader.Get(); }
		ID3D11PixelShader* GetPixelShader()const { return m_pixelShader.Get(); }

	private:
		ComPtr<ID3D11VertexShader> m_vertexShader;
		ComPtr<ID3D11PixelShader> m_pixelShader;
		ComPtr<ID3DBlob> m_vsBuffer;
		ComPtr<ID3DBlob> m_psBuffer;
	};

}
